/*
 *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package org.springblade.modules.admin.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import org.springblade.core.mp.base.BaseEntity;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;


import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springblade.core.tenant.mp.TenantEntity;

/**
 * 任务周报实体类
 *
 * @author lsay
 * @since 2024-09-02
 */
@Data
@TableName("blade_maintain_plan_weekly_report")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "MaintainPlanWeeklyReport对象", description = "任务周报")
public class MaintainPlanWeeklyReport extends TenantEntity {

	private static final long serialVersionUID = 1L;

	/**
	 * 项目id
	 */
	@ApiModelProperty(value = "项目id")
	private Long buildingId;
	/**
	 * 项目名称
	 */
	@ApiModelProperty(value = "项目名称")
	private String buildingName;
	/**
	 * 电梯总数
	 */
	@ApiModelProperty(value = "电梯总数")
	private Long elevatorCount;
	/**
	 * 故障电梯数
	 */
	@ApiModelProperty(value = "故障电梯数")
	private Long faultElevatorCount;
	/**
	 * 对比上周增加故障电梯数
	 */
	@ApiModelProperty(value = "对比上周增加故障电梯数")
	private Long faultElevatorAddCount;
	/**
	 * 维修完成电梯数
	 */
	@ApiModelProperty(value = "维修完成电梯数")
	private Long malFinishElevatorCount;
	/**
	 * 维修中电梯数
	 */
	@ApiModelProperty(value = "维修中电梯数")
	private Long malUnderwayElevatorCount;
	/**
	 * 维修工单数
	 */
	@ApiModelProperty(value = "维修工单数")
	private Long malCount;
	/**
	 * 维修工单未完成数
	 */
	@ApiModelProperty(value = "维修工单未完成数")
	private Long malUnderwayCount;
	/**
	 * 维修工单完成数
	 */
	@ApiModelProperty(value = "维修工单完成数")
	private Long malFinishCount;
	/**
	 * 故障电梯数每日趋势
	 */
	@ApiModelProperty(value = "故障电梯数每日趋势")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> malElevatorTrend;
	/**
	 * 困人电梯数
	 */
	@ApiModelProperty(value = "困人电梯数")
	private Long rescueElevatorCount;
	/**
	 * 救援次数
	 */
	@ApiModelProperty(value = "救援次数")
	private Long rescueCount;
	/**
	 * 对比上周增加救援次数
	 */
	@ApiModelProperty(value = "对比上周增加救援次数")
	private Long rescueAddCount;
	/**
	 * 准时救援次数
	 */
	@ApiModelProperty(value = "准时救援次数")
	private Long rescueOntimeCount;
	/**
	 * 超时救援次数
	 */
	@ApiModelProperty(value = "超时救援次数")
	private Long rescueOvertimeCount;
	/**
	 * 救援次数每日趋势
	 */
	@ApiModelProperty(value = "救援次数每日趋势")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> rescueCountTrend;
	/**
	 * 维修故障原因统计占比
	 */
	@ApiModelProperty(value = "维修故障原因统计占比")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> malFaultReasonItemCount;
	/**
	 * 维修到达耗时统计
	 */
	@ApiModelProperty(value = "维修到达耗时统计")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> malArriveTimeCount;
	/**
	 * 维修完成耗时统计
	 */
	@ApiModelProperty(value = "维修完成耗时统计")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> malFinishTimeCount;
	/**
	 * 电梯故障次数统计top5
	 */
	@ApiModelProperty(value = "电梯故障次数统计top5")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> elevatorMalCountTop;
	/**
	 * 电梯停梯时长top5
	 */
	@ApiModelProperty(value = "电梯停梯时长top5")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> elevatorStopTimeTop;
	/**
	 * 救援困人原因统计占比
	 */
	@ApiModelProperty(value = "救援困人原因统计占比")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> rescueFaultReasonItemCount;
	/**
	 * 救援到达用时统计
	 */
	@ApiModelProperty(value = "救援到达用时统计")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> rescueArriveCount;
	/**
	 * 救援完成用时统计
	 */
	@ApiModelProperty(value = "救援完成用时统计")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> rescueFinishCount;
	/**
	 * 电梯救援次数top5
	 */
	@ApiModelProperty(value = "电梯救援次数top5")
	@TableField(typeHandler = JacksonTypeHandler.class)
	private List<Map<String,Object>> elevatorRescueCountTop;
	/**
	 * 开始时间
	 */
	@ApiModelProperty(value = "开始时间")
	private Date weekBeginTime;
	/**
	 * 结束时间
	 */
	@ApiModelProperty(value = "结束时间")
	private Date weekEndTime;
	/**
	 * 记录时间
	 */
	@ApiModelProperty(value = "记录时间")
	private Date recordDate;
	/**
	 * 发送时间
	 */
	@ApiModelProperty(value = "发送时间")
	private Date sendTime;

	@TableField(exist = false)
	private String malConfig;

	@TableField(exist = false)
	private String rescueConfig;

}
